package api;

import java.rmi.Remote;
import java.util.ArrayList;

public interface IConsultaReglasRMI extends Remote{
	
	//TODO: Para pruebas, remover
	//Imprime algo en pantalla
	public void imprimirAlgo() throws java.rmi.RemoteException;

	//Devuelve un listado de Strings con todas las reglas. Cada fila es un id de la regla y la descripcion
	public ArrayList<String> obtenerReglas() throws java.rmi.RemoteException; 
	
	//Devuelve todos los datos de una regla, equivalente a llamar a los 3 metodos siguientes
	public ArrayList<String> obtenerDatos(int idRegla) throws java.rmi.RemoteException;
	
	//Devuelve un listado de Strings con la configuracion de la regla, es decir, si chequea sucesos en orden, consecutivos y cancelados
	public ArrayList<String> obtenerConfiguracion(int idRegla) throws java.rmi.RemoteException;
	
	//Devuelve un listado de Strings con los sucesos necesarios de la regla. Cada fila tiene la descripcion de un suceso necesario
	public ArrayList<String> obtenerSucesosNecesarios(int idRegla) throws java.rmi.RemoteException;
	
	//Devuelve una lista de Strings con los objetos afectados por la regla. Cada fila es el nombre del objeto y el metodo a invocar
	public ArrayList<String> obtenerObjetosAfectados(int idRegla) throws java.rmi.RemoteException;
	
	//Activa una regla
	public void activarRegla(int idRegla) throws java.rmi.RemoteException;
	
	//Desactiva una regla
	public void desactivarRegla(int idRegla) throws java.rmi.RemoteException;
	
	//Obtiene el estado de una regla
	public boolean reglaActiva(int idRegla) throws java.rmi.RemoteException;
	
	//Remueve una regla de la lista de reglas
	public void eliminarRegla(int idRegla) throws java.rmi.RemoteException;
	
}
